Systems and methods for facilitating gift selection, attribution, and distribution

ABSTRACT

Systems and methods for gift selection, attribution, and distribution are provided. The systems and methods may detect a gifting signal that is associated with an event corresponding to a recipient. The systems and methods can provide an option to generate a gift for the recipient. If the option is selected, the systems and methods can identify a set of product criteria associated with the event and the recipient. Based on the criteria, the systems and methods can obtain product selection options for the gift and provide these options to a gift sender. In response to a selection from the gift sender, the systems and methods can generate the gift, which includes a redemption option for the selection.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 17/380,105 filed Jul. 20, 2021, which is a continuation of U.S.patent application Ser. No. 16/818,913 filed Mar. 13, 2020, now U.S.Pat. No. 11,100,563, which claims benefit from U.S. Patent Application62/817,815, filed Mar. 13, 2019, which are incorporated herein byreference in their entireties.

BACKGROUND OF THE INVENTION

Currently gift selection and distribution can be limited and uninspired.Selecting a gift is normally done based on personal knowledge, which canoften be incorrect or outdated. The ability to effectively gift give canhave an overall effect on the customer experience. For example,receiving a gift that is unwanted or unrelated to the needs orpreferences of a gift recipient can cause the recipient to not use orignore the gift. There is, therefore, a need in the art for improvedsystems and methods that are capable of facilitating an effective giftselection, attribution, and distribution process.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an illustrative example of an environment in which a giftrecommendation is presented in response to detection of a user-selectedsentiment in accordance with at least one embodiment;

FIG. 2 shows an illustrative example of an environment in which a giftrecommendation is presented in response to detection of a user sentimentvia a message or correspondence from the user in accordance with atleast one embodiment;

FIG. 3 shows an illustrative example of an environment in which a giftrecommendation is presented in response to detection of an eventassociated with a potential recipient in accordance with at least oneembodiment;

FIG. 4 shows an illustrative example of an environment in which arecipient is presented with gift selection options in response toobtaining a gift from a sender in accordance with at least oneembodiment;

FIG. 5 shows an illustrative example of an environment in which arecipient of a gift is presented with various gift options correspondingto a gift value selected by a sender in accordance with at least oneembodiment;

FIG. 6 shows an illustrative example of an environment in which a senderis presented with one or more gift selection categories and a sponsoredgift selection option in accordance with at least one embodiment;

FIG. 7 shows an illustrative example of an environment in which arecipient obtains a brand-related automated gift voucher or giftassociated with a loyalty program in accordance with at least oneembodiment;

FIG. 8 shows an illustrative example of an environment in which arecipient obtains a brand-related automated gift voucher or giftassociated with a loyalty program in accordance with at least oneembodiment;

FIG. 9 shows an illustrative example of an environment in which arecipient is presented with an advertisement that includes abrand-related incentivized loyalty program option in accordance with atleast one embodiment;

FIG. 10 shows an illustrative example of an environment in which a useris presented with various gift recommendations for a recipient inresponse to an event associated with the recipient indicated via asocial media platform in accordance with at least one embodiment;

FIG. 11 shows an illustrative example of an environment in which a giftrecommendation is presented using social media and tagging in accordancewith at least one embodiment;

FIG. 12 shows an illustrative example of an environment in which a giftadvertisement is presented to enable use of a gifting application toselect a gift for delivery to a recipient in accordance with at leastone embodiment;

FIG. 13 shows an illustrative example of an environment in which agifting distribution system provides gifting options to a giftingapplication based on product criteria identified based on indicationsfrom social media platforms and from users in accordance with at leastone embodiment;

FIG. 14 shows an illustrative example of a process for presentingproduct selection options for generating a gift for a recipient inaccordance with at least one embodiment;

FIG. 15 shows an illustrative example of a process for generating a giftfor delivery to a recipient based on user selection of a gifting productor category in accordance with at least one embodiment; and

FIG. 16 shows a computing system architecture including variouscomponents in electrical communication with each other using aconnection in accordance with various embodiments.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, specificdetails are set forth in order to provide a thorough understanding ofcertain inventive embodiments. However, it will be apparent that variousembodiments may be practiced without these specific details. The figuresand description are not intended to be restrictive. The word “exemplary”is used herein to mean “serving as an example, instance, orillustration.” Any embodiment or design described herein as “exemplary”is not necessarily to be construed as preferred or advantageous overother embodiments or designs.

FIG. 1 shows an illustrative example of an environment 100 in which agift recommendation is presented in response to detection of auser-selected sentiment in accordance with at least one embodiment. Morespecifically, FIG. 1 illustrates an example graphical interface forqueuing gift recommendations based on icons having a specific or impliedmeaning or sentiment (e.g., an emoji, which is a simple way to select anemotion quickly that can be conveyed via a graphical representation ofthe emotion). In some embodiments, messaging platforms can include anicon or emoji to enumerate one or more potential gift items that can beshared with other users, such as another person utilizing thesemessaging platforms. In these embodiments, after determining that a userhas indicated, via a messaging platform, that a gift is to be sent to arecipient, one or more emojis can be presented via the graphicalinterface. These emojis can include a determination for the user such asasking the user to decide which sentiment they would like to share.

In an embodiment, an emoji can be associated with one or more giftrecommendations that can correspond to an understood or well-knownsentiment that the emoji represents. For example, when a heart emoji isselected, jewelry, chocolates, flowers, or other romantic-minded giftsmay be presented via the graphical interface. In another example, when alaughing emoji is selected, a joke book, a prank gift, or anotherhumorous gift may be presented via the graphical interface. In theseembodiments, the product-based decision making can be removed from thegift selection process. Thus, if a user wants to express an emotionusing a particular item, then the user can send one or more gifts thatwere recommended based on an emotion conveyed via selection of an emojivia the graphical interface.

In an embodiment, the messaging platforms are in communication with agifting distribution system, which provides a catalog or other selectionof items that can be selected as gifts based on the selected emoji. Forinstance, a messaging platform may transmit, to the gifting distributionsystem, a request to obtain information corresponding to products orproduct categories corresponding to the one or more emojis to bepresented to the user via the graphical interface. In response to therequest, the gifting distribution system may identify, from a catalog ofavailable gift items, the different products and/or product categoriesthat correspond to the available emojis or other sentiments specified bythe messaging platform. In an embodiment, the gifting distributionsystem maintains, in a database or other repository, entries for eachavailable product. Each entry may be associated with a particular emojior sentiment. Thus, the gifting distribution system may provide, foreach product and/or product category, an indication of an associationbetween the product and/or product category with an emoji or sentiment.The messaging platform, based on the obtained products and/or productcategories from the gifting distribution system, may present the userwith a set of products and/or product categories corresponding to theselected emoji or sentiment.

In some embodiments, a history of one or more selections by a usercauses the system to propose one or more emojis to a user for selection.Additionally, the system can enumerate one or more gift items (e.g.,according to whether the user has selected a gift item in the past, oraccording to whom the user selected a gift item for in the past). Inthese embodiments, repeated selection of same or similar gift items canbe avoided as needed based on the history of one or more previousselections by a user.

In some embodiments, the graphical interface can include a sponsored adcorresponding to the recommended gift. For example, a graphicalinterface can include a general suggestion for giving a “quick gift”. Inanother example, a graphical interface can include a sponsored adsuggesting a gift of a “free frosty” or other item associated with aparticular brand. Additionally, a sponsored ad can also include a brandlogo or icon that is recognizable as associated with the sponsoringbrand.

FIG. 2 shows an illustrative example of an environment 200 in which agift recommendation is presented in response to detection of a usersentiment via a message or correspondence from the user in accordancewith at least one embodiment. For example, a user or customer can bepresented, via a graphical interface, gift suggestions that correspondto one or more sentiments expressed by the user or customer in a messageor correspondence with another user. Using the gift suggestions, a usercan select a gift that can be sent to a recipient that represents asentiment (e.g., “thank you”, “you're great”, or “great work”, etc.).Additionally, a gift can be associated with an intensity of emotion(e.g., a gift can represent a strong thank you or a weak thank youdepending on the sentiment and the senders intent).

In these embodiments, the an application on a user device can useemotional gift intent prompting (e.g., based on user intent as noted inone or more words in a text message or other correspondence or socialmedia posting), and one or more signals across one or more channels, toautomatically identify when a consumer has expressed an emotion orintent. Additionally, the system can use emotional gift intent promptingto determine varying degrees of or changes to emotion or intent. Inresponse to detecting an emotion or intent from the user, theapplication may transmit a request to the gifting distribution system todetermine which products and/or product categories are associated withthe detected emotion or intent from the user. In response to therequest, the gifting distribution system may provide the variousproducts and/or product categories corresponding to the detected emotionor intent. In some embodiments, the application maintains associationsbetween different emotions or intents and products and productcategories. Thus, the application, in these instances, may not berequired to query a gifting distribution system to identify productsand/or product categories associated with the detected emotion orintent.

In response to these signals, the application can prompt the user toselect and/or request delivery of a recommended gift. Moreover, usingthe strength of the intent associated with the emotion or intent, theapplication can determine and/or display, via the graphical interface,one or more relevant gift suggestions (e.g., product, category, digitalgift cards, promotion or coupons, sponsored products, experience, etc.),at a relevant price point (e.g., increasing the likelihood that the userwill execute a selection).

In an embodiment, if the user selects a particular gift option from thegift suggestions presented via the graphical interface, the applicationcan prompt the user for payment information that can be used to processpayment for the selected gift. Additionally, the application may promptthe user to provide delivery information for the recipient. In someinstances, the application may derive this delivery information from themessaging application, social media platform, or other source thatprovides the messaging interface between the user and the recipient. Inresponse to obtaining the payment information from the user, theapplication may transmit the payment information and deliveryinformation to the gifting distribution system, which may interact witha payment service corresponding to the provided payment information todetermine whether the payment information is valid. If the paymentinformation is valid, the gifting distribution system may transmit thegift to the recipient using the provided delivery information. It shouldbe noted that in some instances, the payment information may be provideddirectly to a corresponding payment service by the application, whichmay then receive an indication as to whether the payment informationprovided is valid or not. If the payment information is not valid, therequest to send the gift may be denied or, otherwise, the user may benotified, via the application, that its payment information was notaccepted.

FIG. 3 shows an illustrative example of an environment 300 in which agift recommendation is presented in response to detection of an eventassociated with a potential recipient in accordance with at least oneembodiment. In an embodiment, a contextual trigger (e.g. an indicationof a birthday in a social media environment or context) can be used toautomatically generate a curated selection of gifts. For instance, ifthe gifting application detects, from the social media applicationoperating on a user's device, that a friend or other person the user iscommunicating with is the subject of an event (e.g., birthday,anniversary, graduation, etc.), the gifting application may present theuser, via the graphical interface, with various gift options and/orcategories corresponding to the detected event. In some embodiments, inresponse to detecting such an event, the gifting application transmitsan indication of this event to a gifting distribution system, which canprovide appropriate gift options and/or categories that can be presentedto the user via the graphical interface.

Event notifications can be a closed loop on social media platforms.Thus, in a social media context, an event notification can be anindication that a potential recipient is the subject of the event, theuser gets a reminder, the user sends a note, and the potential recipientmay or may not respond back. In these embodiments, the ability to powera curated selection of gifts at various price points can be facilitated.Additionally, this ability can enhance the emotional engagement of acommunication is enhanced, as this type of gesture can stand out assignificant to the recipient, which can enable a deeper connectionbetween a sender and a recipient.

In an embodiment, if a gift is selected from a curated set, the gift canbe paid for using the same graphical interface. For instance, asillustrated in FIG. 3 , the user may be presented with a payment optionthat is linked to a user's payment information. This payment informationmay be transmitted to the gifting distribution system or to a paymentprovider, which may verify the provided payment information anddetermine whether the payment information is valid. As described above,if the payment information is valid, the payment is processed and theselected gift is transmitted to the recipient using delivery informationassociated with the recipient (e.g., social media platform identifier,e-mail address, physical mailing address, etc.). However, if theprovided payment information is not valid, the request to provide a giftto the recipient may be denied and/or the user may be notified that thepayment information provided is not valid.

FIG. 4 shows an illustrative example of an environment 400 in which arecipient is presented with gift selection options in response toobtaining a gift from a sender in accordance with at least oneembodiment. In an embodiment, the ability for a recipient to receive andselect a gift from a limited set of curated and relevant options isfurther facilitated based on an event. This embodiment is similar towhat is depicted in FIG. 3 above, and additionally, this embodimentallows a recipient to select, via the graphical interface, from one ormore gift options. For example, a recipient can initially receive a giftcard from a first coffee company and then be presented with the optionto select a different coffee company for redemption of the gift card.

In an embodiment, when the recipient selects the digital representationof the gift card via the messaging application, a request is transmittedto the gifting distribution system to identify any availablealternatives to the primary gift associated with the gift card. Forinstance, when a sender of the gift card generates the gift card, thegifting distribution system may identify similar gifts having a similarvalue to that of the gift selected by the sender. The giftingdistribution system may maintain an association between the particulargift (e.g., gift card) and these alternatives that may be presented tothe recipient upon selection of the gift. In some instances, the sendermay identify one or more of these possible alternatives that may bepresented to the recipient. Alternatively, if the sender does notidentify possible alternatives to the gift, the gifting distributionsystem may automatically identify these possible alternatives based onone or more characteristics of the selected gift (e.g., productcategory, price range, manufacturer, product source (e.g., store, brand,and the like), etc.). In some instances, the sender may select, insteadof a specific gift, a product category. From this product category, thegifting distribution system may present, via the graphical interface,various products associated with the product category that the recipientmay select as its gift.

FIG. 5 shows an illustrative example of an environment 500 in which arecipient of a gift is presented with various gift options correspondingto a gift value selected by a sender in accordance with at least oneembodiment. In certain embodiments, product gifting can be facilitatedwith a limited amount of knowledge about the recipient (e.g., withoutknowledge of a recipient's color or size preference). In theseimplementations, category (or product) gifting can allow a gift senderto select a category (e.g., a shoe, cup of coffee, or an experience),and pay for a gift. For instance, via a gifting application, a user mayselect a particular product category from which a recipient may select aproduct as a gift from the user. Via this gifting application, the usermay select a gift value, which may be used to identify the products thatmay be made available to the recipient for selection as a gift from theuser.

In an embodiment, the user can select, from the gifting application, theproduct category from which a recipient may select a gift from the user.These product categories may be provided by the gifting distributionsystem, which may populate the gifting application with differentproduct categories for selection by the user via the graphicalinterface. In some instances, the gifting application may presentparticular product categories based on a sentiment, emoji, or otherindication as described above. If the user selects a particular productcategory, the gifting application may present the user with an option toselect a price range or limit for the gift. Based on the specified pricerange or limit, the user may presented with various gift options thatmay be presented to the recipient for the recipient's selection.Further, the user may be presented with different payment options,through which the user may provide its payment information.

In an embodiment, when a gift recipient accepts a gift, the giftrecipient is presented with a curated collection of specific productsfrom the product category selected by the sender or otherwise fit theprice point of what the gift sender paid. In these embodiments,visibility as to the cost of the gift can be limited or restricted suchthat the recipient cannot see the price. Additionally, in someembodiments, a gift recipient can exchange a gift across differentmerchants or retailers. For example, a gift recipient can receive a gift(e.g., in the form a gift card, a voucher, or a coupon), from a firstmerchant but choose to redeem that gift from a different merchant thatalso carries the same or similar goods. In an embodiment, any productsfrom the product category selected that are not in stock or areotherwise unavailable are hidden from view or are otherwise notpresented to the gift recipient. In another example, if a particularproduct selected by the sender is unavailable, the gift recipient may bepresented with other products of the same product category as theunavailable product. These other products may be of equal or similarvalue to that of the unavailable product.

FIG. 6 shows an illustrative example of an environment 600 in which asender is presented with one or more gift selection categories and asponsored gift selection option in accordance with at least oneembodiment. In some implementations, a sponsored gift can be included inany and all of the graphical interfaces or gift situations describedherein. Additionally, in these implementations, any social mediaplatform (or network of partners and merchants), can sponsor an ad thatcan facilitate showcasing a gift or item on that social media platform(e.g., causing that gift or item to stand out). For instance, a socialmedia platform may provide, to the gifting distribution system, one ormore sponsored gift options that may be presented to users making giftselections via the social media platform. Thus, if the giftingapplication operating in the background of a social media application ofthe social media platform detects that a user wants to generate a giftfor a recipient, the gifting application may obtain, from the giftingdistribution system, various sponsored gift options as indicated by thesocial media platform. The gifting application may presented thesesponsored gift options in addition to any other products and/or productcategories that the user may select as possible gifts for a recipient.

FIG. 7 shows an illustrative example of an environment 700 in which arecipient obtains a brand-related automated gift voucher or giftassociated with a loyalty program in accordance with at least oneembodiment. In the environment 700, a recipient may obtain abrand-related gift in response to a specific customer situationassociated with the brand. Customer situations can include, but are notlimited to, resolving a customer care situation (e.g., lost luggage),and/or rewarding a customer for its loyalty (e.g., customer mileagemilestones, spending milestones, customer referrals, etc.). In anembodiment, when the recipient selects the brand-related gift presentedvia the graphical interface, the recipient is presented with variousproducts from which the recipient may select a gift. For instance, inresponse to recipient selection of the brand-related gift via thegraphical interface, the application may transmit a request to thegifting distribution system to identify one or more products and/orcategories associated with the brand-related gift generated by thebrand. For instance, based on the brand associated with thebrand-related gift, the gifting distribution system may identify one ormore products and/or product categories associated with the brand (e.g.,products generated by the brand, products designated by the brand asbeing available for recipients, etc.). In some instances, brands mayassociate distinct values to each of the products that may be madeavailable to recipients. Thus, the gifting distribution system mayprovide, via the graphical interface, products that may be selectedcorresponding to the value indicated by the brand in the brand-relatedgift.

FIG. 8 shows an illustrative example of an environment 800 in which arecipient obtains a brand-related automated gift voucher or giftassociated with a loyalty program in accordance with at least oneembodiment. In the environment 800, a brand may provide a brand-relatedgift to a recipient based on a recipient milestone (e.g., an anniversarywith the brand, etc.). The brand-related gift presented to therecipient, as illustrated in FIG. 8 , may not include an indication ofthe value of the brand-related gift but rather the milestone achieved bythe recipient. In an embodiment, the brand indicates, to the giftingdistribution system, products and/or product categories that areassociated with different customer milestones. Alternatively, the brandmay associate, via the gifting distribution system, values withcorresponding customer milestones. These values may be used by thegifting distribution system to determine what products and/or productcategories may be presented to recipients based on the milestonesachieved by these recipients and indicated in the brand-related gifts.

In some implementations, brand incentives can motivate an action. Forexample, a fast food chain can offer an item (e.g., fries) at a giventime to users who do something kind for someone else. In theseimplementations, this offer can be followed by a thank you note to thebrand from the consumer. Brand sponsored gifting can allow a brand todigitally gift and deliver items to one or more people. Deliverableitems can include, but are not limited to, a sponsored product, acategory, a digital gift card, an experience, a promotion, or a coupon.In some embodiments, because a product is sent virtually, a brand doesnot have to manage inventory. In these embodiments, as a gift getsclaimed by a consumer and converted into a physical item, the systemdescribed herein can automatically and dynamically manage how many ofthe gifts can be accepted and expire any unclaimed gifts.

Additionally, in some embodiments, both unclaimed and claimed gifts canbe set to expire. This can allow a brand to effectively manage the costof any sponsored gift campaign. For example, the brand gifting describedherein could be triggered off a social media page or accountcorresponding to a brand and available to visitors. In theseembodiments, when a customer or recipient sends a thank you (e.g., inresponse to receiving a gift or gift selection option), the interactiondata can be used by the brand (e.g., to inject fresh content into theirsocial media pages, to gauge sentiment, etc.).

FIG. 9 shows an illustrative example of an environment in which arecipient is presented with an advertisement that includes abrand-related incentivized loyalty program option in accordance with atleast one embodiment. In these implementations, within a marketplace ofgifts, a gift with purchase can be automatically sent without brandinteraction (e.g., brand fulfillment). For instance, if a user fulfillsthe requirements set forth in the advertisement, the user may bepresented with one or more gift options by the gifting distributionsystem via the graphical interface. The one or more gift options may beinitially selected by the brand when generating the advertisement. Forinstance, the brand may associate a set of products and/or productcategories with the advertisement. Thus, the advertisement may beassociated with these one or more products and/or product categories,from which a user may select a gift.

FIG. 10 shows an illustrative example of an environment 1000 in which auser is presented with various gift recommendations for a recipient inresponse to an event associated with the recipient indicated via asocial media platform in accordance with at least one embodiment. Insome implementations, a gift recommendation can be associated with anevent (e.g., a birthday, an anniversary, etc.). For example, a giftgiven through a social media platform (e.g., on a social media page) caninclude a reminder (e.g., for an occasion reminder such as a birthday oranniversary). In these implementations, selection of one or moreproducts at a specific price can be facilitated (as noted herein above).Additionally, curated products (and ads) can be automatically includedin a recipient social media feed.

FIG. 11 shows an illustrative example of an environment 1100 in which agift recommendation is presented using social media and tagging inaccordance with at least one embodiment. In some implementations, asocial media platform can be used to facilitate gifting (e.g., usingspecially tagged posts). In these implementations, gifting opportunitiescan be automatically detected and facilitated using user behavior (e.g.,a hashtag or other type of post). For instance, a gifting applicationmay detect, from a social media post, a hashtag or other type of contentthat may be associated with a particular event or milestone for apossible recipient (e.g., a birthday, an anniversary, etc.). In responseto detecting a hashtag or other type of content associated with aparticular event or milestone, the gifting application may present theuser, via the graphical interface, with an option to deliver a gift tothe possible recipient that is the subject of the social media post.Selection of this option may cause the gifting application to presentthe user with various products and/or product categories that may beprovided to the recipient, as described in detail above.

FIG. 12 shows an illustrative example of an environment 1200 in which agift advertisement is presented to enable use of a gifting applicationto select a gift for delivery to a recipient in accordance with at leastone embodiment. In the environment 1200, a physical advertisement may bepresented at a point of sale that includes a Quick Response (QR) code,bar code, or other object that, when scanned using a mobile device,causes the mobile device to execute a gifting application for generatinga gift for a recipient. In an embodiment, if the mobile device does nothave the gifting application installed, the mobile device may obtain theapplication from the gifting distribution system or other applicationdistribution system. For instance, the scannable object (e.g., QR code,etc.) may correspond to a hyperlink or other network address of anetwork location where the gifting application may be obtained.

In an embodiment, if the mobile device has installed the giftingapplication, scanning of the object may cause the gifting application topresent to the user, via a graphical interface, options for sending agift to a particular recipient. For instance, the scannable object maybe associated with a particular item or set of items at the point ofsale. For instance, the scannable object may be associated with aparticular sweater provided by a retailer and sold at the point of sale.From the gifting application, the user may select which item to provideas a gift as well as other options for the item (e.g., size, color,etc.). In some instances, the gifting application may alternativelypresent the user with various products and/or product categoriescorresponding to items sold at the point of sale or by the retailer thatprovides the point of sale. For instance, in response to scanning theobject, the gifting application may transmit a request to the giftingdistribution system to identify the products and/or product categoriesmade available at the point of sale or retailer that provides the pointof sale.

Through the gifting application, the user may select a product and/orproduct category that may be presented as a gift to a particularrecipient. Further, the user may provide delivery information for thegift (e.g., e-mail address of the recipient, a physical address of therecipient, etc.) as well as payment information. In some embodiments,the user can provide payment information for the gift at the point ofsale, whereby a confirmation may be provided to the gifting distributionsystem. In response to this confirmation, the gifting distributionsystem may deliver the gift to the recipient.

FIG. 13 shows an illustrative example of an environment 1300 in which agifting distribution system 1308 provides gifting options to a giftingapplication 1306 based on product criteria identified based onindications from social media platforms and from users in accordancewith at least one embodiment. In the environment 1300, a sender device1302 executes a social media application 1304 and a gifting application1306 that can be utilized to generate a gift that can be distributed toa particular recipient as designated by a user of the sender device1302. In an embodiment, the gifting application 1306 operates as aprocess (e.g., plug-in, etc.) operating in conjunction with the socialmedia application 1304. For instance, the gifting application 1306 mayfunction to monitor interactions between the user of the social mediaapplication 1304 and other users of the social media platform associatedwith the social media application 1304. The social media application1304, for example, may be a messenger application that enables a user ofthe sender device 1302 to communicate digitally (e.g., text, video,voice, etc.) with other users of the social media platform.

In an embodiment, the gifting application 1306 obtains an indicationfrom the social media application 1304 of an event associated with apossible recipient for which the user of the sender device 1302 may wantto send a gift to the possible recipient. For instance, based on asocial media post presented via the social media application 1304, thegifting application 1306 may determine that it is the birthday of thesubject of the social media post. In response to this indication of agiftable event, the gifting application 1306 may present the user of thesender device 1302, via a graphical interface, with an option to send agift to the subject of the social media post. If the user selects thisoption, the gifting application 1306 may transmit a request to a giftingdistribution system 1308 to determine what products and/or productcategories may be available for delivery to the subject of the socialmedia post. In an embodiment, the gifting application 1306 can provide,in the request, contextual information corresponding to the detectedevent, as well as information about the user of the sender device 1302and of the subject of the social media post, to the gifting distributionsystem 1308. This contextual information may be used by the giftingdistribution system 1308 to recommend possible products and/or productcategories that may be provided as gifts to the subject of the socialmedia post. The contextual information may include the event detected bythe gifting application 1306 (e.g., birthday, anniversary, milestone,etc.), information about the user of the sender device 1302 (e.g., name,addresses, past gifting or purchase history, etc.), and informationabout the possible recipient (e.g., name, addresses, previous gifts sentby the user to the possible recipient, etc.).

In response to obtaining the request from the gifting application 1306,the gifting distribution system 1308 may evaluate the contextualinformation provided in the request to identify possible products and/orproduct categories that may be presented to the user of the senderdevice 1302 for selection as a possible gift for the subject of thesocial media post. For instance, the gifting distribution system 1308may access a product catalog repository 1310 to identify these possibleproducts and/or product categories. The product catalog repository 1310may include a database that includes entries corresponding to individualproducts as well as to individual product categories associated with oneor more products. Each entry may be categorized based on brand,sentiment, event, price, and the like. Thus, based on the contextualinformation provided by the gifting application 1306, the giftingdistribution system 1308 may identify products and/or product categoriesthat may be presented to the user of the sender device 1302 by thegifting application 1306.

The gifting distribution system 1308 may transmit the selection optionsto the gifting application 1306 in response to identify a set ofproducts and/or product categories that may be available for gifting tothe subject of the social media post. In response to obtaining theseselection options, the gifting application 1306 may present the user ofthe sender device 1302, via the graphical interface, with theseselection options. Via the graphical interface, the user of the senderdevice 1302 may select a product that may be given to the recipient(e.g., subject of the social media post) as a gift. Alternatively, theuser may select a product category from which the recipient may select aproduct as a gift from the user. In some instances, the user may alsoidentify possible alternatives that may be presented to the recipientshould the recipient prefer an alternative to the gift selected by theuser. For instance, if the user selects a particular brand of coffeethat is to be given to the recipient, the user may select other brandsof coffee from which the recipient may select its gift from.

In an embodiment, if the social media platform that provides the socialmedia application has engaged the gifting distribution system 1308 toprovide sponsored gift ideas to users of the social medial application1304 when presenting possible products and/or product categories tousers, the gifting distribution system 1308 may provide these sponsoredgift ideas to the gifting application 1306. The gifting application 1306may present these sponsored gift ideas in addition to any identifiedproducts and/or product categories indicated by the gifting distributionsystem 1308.

Through the graphical interface, a user can designate an amount that canbe allocated for selection of a gift by the recipient of the gift. Forinstance, if the user of the sender device 1302 sets a maximum amountthat can be allocated for a gift, the gifting distribution system 1308can identify a set of products that are valued at or below the maximumamount specified by the user of the sender device 1302. This set ofproducts may be presented to the user via the gifting application 1306in order to allow the user to determine whether the products would beacceptable as gifts for the recipient. If not, the user may set adifferent amount that can be allocated for a gift.

In an embodiment, through the gifting application 1306, the user of thesender device 1302 can provide payment information that may be used forpayment of a gift for the recipient. For instance, as illustrated inFIG. 3 , the user may utilize a mobile payment service or digital wallet(e.g., Apple Pay®, etc.) to provide payment for the gift. Alternatively,the user may provide credit card information, online payment systeminformation, banking information, money transfer information, and likethat may be used to obtain payment for the gift. The gifting application1306 may provide the payment information to the gifting distributionsystem 1308, which may communicate with a corresponding payment service1312 to authenticate the payment information. If the payment informationis valid and payment can be made for the gift, the payment service 1312may provide the gifting distribution system 1308 with the requisitepayment. However, if the payment information cannot be validated, thegifting distribution system 1308 may transmit a notification to thegifting application 1306 that the request to send a gift to therecipient could not be completed. The gifting application 1306 mayprompt the user to provide another form of payment or alternativepayment information. Alternatively, the gifting application 1306 mayterminate the request.

In an embodiment, the gifting distribution system 1308 transmits thegift to the recipient via the social media platform through which theuser of the sender device 1302 and the recipient are communicating.Alternatively, if the user has provided an electronic address of therecipient, the gifting distribution system 1308 may transmit the gift tothe recipient via this electronic address. A recipient receiving thegift may be presented with a redemption code or other information thatmay used to redeem the gift provided therein. For instance, if the giftis a gift card for a particular store, the recipient may redeem the giftcard at the store (e.g., online storefront, etc.). In an embodiment, ifthe sender has indicated that the gift can be exchanged for otherproducts of equal or similar value, the recipient may be presented, viaa gifting application or website viewable from a recipient device, withvarious product options that are of equal or similar value to theoriginal product selected by the user. For example, as illustrated inFIG. 4 , a recipient may be presented with various brands of coffee asan alternative to the brand selected by the sender. This enables therecipient to select a product of its choice if the recipient does notwant to receive the product originally selected by the sender. Thealternatives presented to the recipient may be selected based on theproduct category of the original product selected by the sender.Alternatively, the alternatives may be selected based on the value ofthe original product selected by the sender.

The gifting distribution system 1308 may maintain, for each gift madeavailable to a recipient, a database entry corresponding to the gift.For instance, when a recipient selects a gift presented to the recipientfrom a sender, the recipient device may be directed to the giftingdistribution system 1308, whereby the gifting distribution system 1308may identify the product and/or product category associated with thegift. Further, the gifting distribution system 1308 may identify anysender preferences that may be used to determine how the product and/orproduct categories associated with the gift are to be presented to therecipient. For instance, if a sender has opted to hide the value of thegift from the recipient via the gifting application 1306, the recipientmay be presented with various gift options that have a value equal to orless than the value set forth by the sender. The recipient may select aproduct from these gift options without being presented with thecorresponding value of the product. As another example, the recipientmay be presented with alternative products in the same category of theproduct selected by the sender as the gift for the recipient.

FIG. 14 shows an illustrative example of a process 1400 for presentingproduct selection options for generating a gift for a recipient inaccordance with at least one embodiment. The process 1400 may beperformed by a gifting application executing on a computing device, suchas a mobile device. The gifting application may be operating inconjunction with a social media application or other application on thecomputing device that enables communication between a user of thecomputing device and other entities. For instance, the giftingapplication may monitor communications and posts made and/or receivedvia the social media application.

At step 1402, the gifting application may detect a gifting signal. Agifting signal may include a sentiment of the user of the computingdevice with regard to an action performed by a possible recipient. Forinstance, through a social media application, a user may indicate thatit is grateful to the recipient for performing an action. The giftingapplication may determine that this sentiment is a gifting signal thatmay serve as an indication that the user may be likely to want to send agift to the recipient. Another example of a gifting signal is an eventassociated with the recipient that is typically associated with thepresentation of gifts. This event may include a birthday, ananniversary, a milestone (e.g., retirement, career service time,graduation, promotion, etc.), and the like.

In response to detecting a gifting signal, the gifting application, atstep 1404, may present a gifting prompt to the user of the computingdevice via a graphical user interface. For instance, the giftingapplication may generate an iFrame, pop-up window, banner, or otherinterface element that prompts the user to indicate whether it wants tosend a gift to a recipient (e.g., person to whom the user iscommunicating, person whose post the user is reviewing, etc.). In anembodiment, in response to the gifting signal, the gifting applicationobtains product and/or product category information that can bepresented to the user via the gifting prompt. This may allow the user toselect a product or product category that can be delivered as a gift tothe recipient.

In an embodiment, the gifting application can identify certain productcriteria associated with the recipient. For instance, the giftingapplication may identify one or more characteristics of the possiblerecipient that may be used to identify a set of products and/or productcategories that may be appealing to the recipient. As an example, thegifting application may transmit information associated with therecipient to the gifting distribution system, which may maintaindetailed information and preferences for different entities, includingthe recipient. The gifting distribution system may identify, based onthis detailed information and preferences for the recipient, whatproducts and/or product categories may be of interest to the recipient.These preferences may be determined based on previous gifts selected bythe recipient, activities identified through a recipient profile, andthe like. This information may be provided to the gifting application inthe form of existing product criteria. Thus, at step 1406, the giftingapplication may determine whether there are any existing productcriteria for the possible recipient. If the gifting applicationdetermines that there are no existing product criteria, the giftingapplication may, at step 1408, present a set of default productselection options. These options may be selected based on the particularevent or sentiment detected by the gifting application.

In an embodiment, if the gifting application identifies one or moreexisting product criteria for the recipient, the gifting application, atstep 1410, determines whether the sender has specified any productcriteria. For instance, through the gifting application, the sender mayidentify a set of criteria that may be used to identify particularproducts and/or product categories from which the sender may select agift for the recipient. Alternatively, the sender may select an existingproduct criteria corresponding to the recipient, which the giftingapplication may associate with a particular set of products and/orproduct categories that may be presented to the recipient. In someembodiments, the sender can specify a gift value that can be used toidentify products of equal or lesser value that can be presented to therecipient for selection. In an embodiment, if the sender does not selectany products or product categories, the gifting application may, at step1410, present the default product selection options as described above.

In an embodiment, at step 1412, the gifting application transmits arequest to the gifting distribution system to obtain criteria-basedproduct selection options. For instance, the gifting application mayprovide the existing product criteria for the recipient, as well as anycriteria specified by the sender that may be used to identifyappropriate products and/or product categories that can be presented tothe sender. The gifting application may obtain, at step 1414, thecriteria-based product selection options from the gifting distributionsystem. These product selection options may be selected by the giftingdistribution system based on the various criteria identified andprovided by the gifting application. In response to obtaining theseselection options, the gifting application may, at step 1416, presentthese criteria-based product selection options to the sender via thegraphical user interface.

FIG. 15 shows an illustrative example of a process 1500 for generating agift for delivery to a recipient based on user selection of a giftingproduct or category in accordance with at least one embodiment. Theprocess 1500 may be performed by the gifting distribution system, whichmay be in electrical communication with a gifting application installedon a computing device of a sender of a gift. For instance, the giftingdistribution system may obtain information from the gifting applicationthat may be used to generate a gift that can be transmitted to arecipient for redemption.

At step 1502, the gifting distribution system may detect user selectingof a gifting product or category. As described above, a user, via agraphical interface, may be presented with various product and/orproduct categories from which the user may select one or more productsand/or product categories that may be presented to a recipient as a giftor gift options. If the user selects one or more products and/or productcategories, the gifting application may transmit this selection to thegifting distribution system.

In response to detecting selection of one or more gifting productsand/or product categories, the gifting distribution system may, at step1504, determine whether user payment is required in order to generatethe gift for the specified recipient. For instance, if the sendermaintains a balance with the gifting distribution system, the giftingdistribution system may determine whether this balance is sufficient tocover the value of each identified product from the set of productsand/or product categories specified by the sender. If a user payment isnot required to cover the value of the gift, the gifting distributionsystem may, at step 1512, generate the gift including the selection madeby the user for delivery to the recipient. For instance, the giftingdistribution system may generate a digital gift card that includespersonalized elements associated with the occasion for which the giftwas generated (e.g., birthday, anniversary, etc.). Additionally, thedigital gift card may include a link to the gifting distribution system,which may present the recipient with the product and/or productcategories indicated by the sender, as well as any possible alternativesas described above.

In an embodiment, if user payment is required for the gift, the giftingdistribution system may, at step 1506, obtain user payment informationor selection of payment information. For instance, the giftingdistribution system may transmit a request to the gifting application onthe sender's computing device to obtain this payment information. Thismay cause the gifting application to prompt the sender to provide therequested payment information. In some instances, the sender may enter,via the graphical information, the requested payment information.Alternatively, the sender may select an available payment option, suchas from a digital wallet. The gifting application may provide thispayment information to the gifting distribution system for validation.

At step 1508, the gifting distribution system may determine whether thepayment information or selection made by the sender is valid. Forinstance, the gifting distribution system may transmit the providedpayment information to a corresponding payment service. The paymentservice may evaluate the provided payment information and determinewhether the payment information is associated with the sender and, ifso, the account associated with the payment information has sufficientfunds for the gift selected by the sender. If the payment information isvalid and the sender account has sufficient funds for the gift, thepayment service may provide the requisite funds to the gift distributionsystem for generation of the gift. In response to an indication from thepayment service that the payment has been provided, the giftingdistribution system, at step 1512, may generate the gift including theselection made by the sender for deliver to the specified recipient.

If the payment information is not valid or the sender account hasinsufficient funds, the gifting distribution system, at step 1510, mayperform operations corresponding to an invalid payment. This may includetransmitting a notification to the gifting application to indicate thatthe gift could not be generated due to the payment information beinginvalid. This may cause the gifting application to indicate, to theuser, that the gift could not be generated. In some instances, thesender may be provided with an additional opportunity to providealternative payment information, which may be processed by the giftingdistribution system, as described above, to determine whether thisalternative payment information is valid.

FIG. 16 illustrates a computing system architecture 1600 includingvarious components in electrical communication with each other using aconnection 1606, such as a bus, in accordance with some implementations.Example system architecture 1600 includes a processing unit (CPU orprocessor) 1604 and a system connection 1606 that couples various systemcomponents including the system memory 1620, such as ROM 1618 and RAM1616, to the processor 1604. The system architecture 1600 can include acache 1602 of high-speed memory connected directly with, in closeproximity to, or integrated as part of the processor 1604. The systemarchitecture 1600 can copy data from the memory 1620 and/or the storagedevice 1608 to the cache 1602 for quick access by the processor 1604. Inthis way, the cache can provide a performance boost that avoidsprocessor 1604 delays while waiting for data. These and other modulescan control or be configured to control the processor 1604 to performvarious actions.

Other system memory 1620 may be available for use as well. The memory1620 can include multiple different types of memory with differentperformance characteristics. The processor 1604 can include any generalpurpose processor and a hardware or software service, such as service 11610, service 2 1612, and service 3 1614 stored in storage device 1608,configured to control the processor 1604 as well as a special-purposeprocessor where software instructions are incorporated into the actualprocessor design. The processor 1604 may be a completely self-containedcomputing system, containing multiple cores or processors, a bus, memorycontroller, cache, etc. A multi-core processor may be symmetric orasymmetric.

To enable user interaction with the computing system architecture 1600,an input device 1622 can represent any number of input mechanisms, suchas a microphone for speech, a touch-sensitive screen for gesture orgraphical input, keyboard, mouse, motion input, speech and so forth. Anoutput device 1624 can also be one or more of a number of outputmechanisms known to those of skill in the art. In some instances,multimodal systems can enable a user to provide multiple types of inputto communicate with the computing system architecture 1600. Thecommunications interface 1626 can generally govern and manage the userinput and system output. There is no restriction on operating on anyparticular hardware arrangement and therefore the basic features heremay easily be substituted for improved hardware or firmware arrangementsas they are developed.

Storage device 1608 is a non-volatile memory and can be a hard disk orother types of computer readable media which can store data that areaccessible by a computer, such as magnetic cassettes, flash memorycards, solid state memory devices, digital versatile disks, cartridges,RAMs 1616, ROM 1618, and hybrids thereof.

The storage device 1608 can include services 1610, 1612, 1614 forcontrolling the processor 1604. Other hardware or software modules arecontemplated. The storage device 1608 can be connected to the systemconnection 1606. In one aspect, a hardware module that performs aparticular function can include the software component stored in acomputer-readable medium in connection with the necessary hardwarecomponents, such as the processor 1604, connection 1606, output device1624, and so forth, to carry out the function.

The disclosed gift selection, attribution, and distribution system canbe performed using a computing system. An example computing system caninclude a processor (e.g., a central processing unit), memory,non-volatile memory, and an interface device. The memory may store dataand/or and one or more code sets, software, scripts, etc. The componentsof the computer system can be coupled together via a bus or through someother known or convenient device. The processor may be configured tocarry out all or part of methods described herein for example byexecuting code for example stored in memory. One or more of a userdevice or computer, a provider server or system, or a suspended databaseupdate system may include the components of the computing system orvariations on such a system.

This disclosure contemplates the computer system taking any suitablephysical form, including, but not limited to a Point-of-Sale system(“POS”). As example and not by way of limitation, the computer systemmay be an embedded computer system, a system-on-chip (SOC), asingle-board computer system (SBC) (such as, for example, acomputer-on-module (COM) or system-on-module (SOM)), a desktop computersystem, a laptop or notebook computer system, an interactive kiosk, amainframe, a mesh of computer systems, a mobile telephone, a personaldigital assistant (PDA), a server, or a combination of two or more ofthese. Where appropriate, the computer system may include one or morecomputer systems; be unitary or distributed; span multiple locations;span multiple machines; and/or reside in a cloud, which may include oneor more cloud components in one or more networks. Where appropriate, oneor more computer systems may perform without substantial spatial ortemporal limitation one or more steps of one or more methods describedor illustrated herein. As an example and not by way of limitation, oneor more computer systems may perform in real time or in batch mode oneor more steps of one or more methods described or illustrated herein.One or more computer systems may perform at different times or atdifferent locations one or more steps of one or more methods describedor illustrated herein, where appropriate.

The processor may be, for example, be a conventional microprocessor suchas an Intel Pentium microprocessor or Motorola power PC microprocessor.One of skill in the relevant art will recognize that the terms“machine-readable (storage) medium” or “computer-readable (storage)medium” include any type of device that is accessible by the processor.

The memory can be coupled to the processor by, for example, a bus. Thememory can include, by way of example but not limitation, random accessmemory (RAM), such as dynamic RAM (DRAM) and static RAM (SRAM). Thememory can be local, remote, or distributed.

The bus can also couples the processor to the non-volatile memory anddrive unit. The non-volatile memory is often a magnetic floppy or harddisk, a magnetic-optical disk, an optical disk, a read-only memory(ROM), such as a CD-ROM, EPROM, or EEPROM, a magnetic or optical card,or another form of storage for large amounts of data. Some of this datais often written, by a direct memory access process, into memory duringexecution of software in the computer. The non-volatile storage can belocal, remote, or distributed. The non-volatile memory is optionalbecause systems can be created with all applicable data available inmemory. A typical computer system will usually include at least aprocessor, memory, and a device (e.g., a bus) coupling the memory to theprocessor.

Software can be stored in the non-volatile memory and/or the drive unit.Indeed, for large programs, it may not even be possible to store theentire program in the memory. Nevertheless, it should be understood thatfor software to run, if necessary, it is moved to a computer readablelocation appropriate for processing, and for illustrative purposes, thatlocation is referred to as the memory herein. Even when software ismoved to the memory for execution, the processor can make use ofhardware registers to store values associated with the software, andlocal cache that, ideally, serves to speed up execution. As used herein,a software program is assumed to be stored at any known or convenientlocation (from non-volatile storage to hardware registers), when thesoftware program is referred to as “implemented in a computer-readablemedium.” A processor is considered to be “configured to execute aprogram” when at least one value associated with the program is storedin a register readable by the processor.

The bus can also couples the processor to the network interface device.The interface can include one or more of a modem or network interface.It will be appreciated that a modem or network interface can beconsidered to be part of the computer system. The interface can includean analog modem, Integrated Services Digital network (ISDN0 modem, cablemodem, token ring interface, satellite transmission interface (e.g.,“direct PC”), or other interfaces for coupling a computer system toother computer systems. The interface can include one or more inputand/or output (I/O) devices. The I/O devices can include, by way ofexample but not limitation, a keyboard, a mouse or other pointingdevice, disk drives, printers, a scanner, and other input and/or outputdevices, including a display device. The display device can include, byway of example but not limitation, a cathode ray tube (CRT), liquidcrystal display (LCD), or some other applicable known or convenientdisplay device.

In operation, the computer system can be controlled by operating systemsoftware that includes a file management system, such as a diskoperating system. One example of operating system software withassociated file management system software is the family of operatingsystems known as Windows® from Microsoft Corporation of Redmond, Wash.,and their associated file management systems. Another example ofoperating system software with its associated file management systemsoftware is the Linux™ operating system and its associated filemanagement system. The file management system can be stored in thenon-volatile memory and/or drive unit and can cause the processor toexecute the various acts required by the operating system to input andoutput data and to store data in the memory, including storing files onthe non-volatile memory and/or drive unit.

Some portions of the detailed description may be presented in terms ofalgorithms and symbolic representations of operations on data bitswithin a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of operations leading to adesired result. The operations are those requiring physicalmanipulations of physical quantities. Usually, though not necessarily,these quantities take the form of electrical or magnetic signals capableof being stored, transferred, combined, compared, and otherwisemanipulated. It has proven convenient at times, principally for reasonsof common usage, to refer to these signals as bits, values, elements,symbols, characters, terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as “processing” or “computing” or “calculating” or“determining” or “displaying” or “generating” or the like, refer to theaction and processes of a computer system, or similar electroniccomputing device, that manipulates and transforms data represented asphysical (electronic) quantities within registers and memories of thecomputer system into other data similarly represented as physicalquantities within the computer system memories or registers or othersuch information storage, transmission or display devices.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general purposesystems may be used with programs in accordance with the teachingsherein, or it may prove convenient to construct more specializedapparatus to perform the methods of some examples. The requiredstructure for a variety of these systems will appear from thedescription below. In addition, the techniques are not described withreference to any particular programming language, and various examplesmay thus be implemented using a variety of programming languages.

In various implementations, the system operates as a standalone deviceor may be connected (e.g., networked) to other systems. In a networkeddeployment, the system may operate in the capacity of a server or aclient system in a client-server network environment, or as a peersystem in a peer-to-peer (or distributed) network environment.

The system may be a server computer, a client computer, a personalcomputer (PC), a tablet PC, a laptop computer, a set-top box (STB), apersonal digital assistant (PDA), a cellular telephone, an iPhone, aBlackberry, a processor, a telephone, a web appliance, a network router,switch or bridge, or any system capable of executing a set ofinstructions (sequential or otherwise) that specify actions to be takenby that system.

While the machine-readable medium or machine-readable storage medium isshown, by way of example, to be a single medium, the term“machine-readable medium” and “machine-readable storage medium” shouldbe taken to include a single medium or multiple media (e.g., acentralized or distributed database, and/or associated caches andservers) that store the one or more sets of instructions. The term“machine-readable medium” and “machine-readable storage medium” shallalso be taken to include any medium that is capable of storing,encoding, or carrying a set of instructions for execution by the systemand that cause the system to perform any one or more of themethodologies or modules of disclosed herein.

In general, the routines executed to implement the implementations ofthe disclosure, may be implemented as part of an operating system or aspecific application, component, program, object, module or sequence ofinstructions referred to as “computer programs.” The computer programstypically comprise one or more instructions set at various times invarious memory and storage devices in a computer, and that, when readand executed by one or more processing units or processors in acomputer, cause the computer to perform operations to execute elementsinvolving the various aspects of the disclosure.

Moreover, while examples have been described in the context of fullyfunctioning computers and computer systems, those skilled in the artwill appreciate that the various examples are capable of beingdistributed as a program object in a variety of forms, and that thedisclosure applies equally regardless of the particular type of machineor computer-readable media used to actually effect the distribution.

Further examples of machine-readable storage media, machine-readablemedia, or computer-readable (storage) media include but are not limitedto recordable type media such as volatile and non-volatile memorydevices, floppy and other removable disks, hard disk drives, opticaldisks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital VersatileDisks, (DVDs), etc.), among others, and transmission type media such asdigital and analog communication links.

In some circumstances, operation of a memory device, such as a change instate from a binary one to a binary zero or vice-versa, for example, maycomprise a transformation, such as a physical transformation. Withparticular types of memory devices, such a physical transformation maycomprise a physical transformation of an article to a different state orthing. For example, but without limitation, for some types of memorydevices, a change in state may involve an accumulation and storage ofcharge or a release of stored charge. Likewise, in other memory devices,a change of state may comprise a physical change or transformation inmagnetic orientation or a physical change or transformation in molecularstructure, such as from crystalline to amorphous or vice versa. Theforegoing is not intended to be an exhaustive list of all examples inwhich a change in state for a binary one to a binary zero or vice-versain a memory device may comprise a transformation, such as a physicaltransformation. Rather, the foregoing is intended as illustrativeexamples.

A storage medium typically may be non-transitory or comprise anon-transitory device. In this context, a non-transitory storage mediummay include a device that is tangible, meaning that the device has aconcrete physical form, although the device may change its physicalstate. Thus, for example, non-transitory refers to a device remainingtangible despite this change in state.

The above description and drawings are illustrative and are not to beconstrued as limiting the subject matter to the precise forms disclosed.Persons skilled in the relevant art can appreciate that manymodifications and variations are possible in light of the abovedisclosure. Numerous specific details are described to provide athorough understanding of the disclosure. However, in certain instances,well-known or conventional details are not described in order to avoidobscuring the description.

As used herein, the terms “connected,” “coupled,” or any variant thereofwhen applying to modules of a system, means any connection or coupling,either direct or indirect, between two or more elements; the coupling ofconnection between the elements can be physical, logical, or anycombination thereof. Additionally, the words “herein,” “above,” “below,”and words of similar import, when used in this application, shall referto this application as a whole and not to any particular portions ofthis application. Where the context permits, words in the above DetailedDescription using the singular or plural number may also include theplural or singular number respectively. The word “or,” in reference to alist of two or more items, covers all of the following interpretationsof the word: any of the items in the list, all of the items in the list,or any combination of the items in the list.

Those of skill in the art will appreciate that the disclosed subjectmatter may be embodied in other forms and manners not shown below. It isunderstood that the use of relational terms, if any, such as first,second, top and bottom, and the like are used solely for distinguishingone entity or action from another, without necessarily requiring orimplying any such actual relationship or order between such entities oractions.

While processes or blocks are presented in a given order, alternativeimplementations may perform routines having steps, or employ systemshaving blocks, in a different order, and some processes or blocks may bedeleted, moved, added, subdivided, substituted, combined, and/ormodified to provide alternative or sub combinations. Each of theseprocesses or blocks may be implemented in a variety of different ways.Also, while processes or blocks are at times shown as being performed inseries, these processes or blocks may instead be performed in parallel,or may be performed at different times. Further any specific numbersnoted herein are only examples: alternative implementations may employdiffering values or ranges.

The teachings of the disclosure provided herein can be applied to othersystems, not necessarily the system described above. The elements andacts of the various examples described above can be combined to providefurther examples.

Any patents and applications and other references noted above, includingany that may be listed in accompanying filing papers, are incorporatedherein by reference. Aspects of the disclosure can be modified, ifnecessary, to employ the systems, functions, and concepts of the variousreferences described above to provide yet further examples of thedisclosure.

These and other changes can be made to the disclosure in light of theabove Detailed Description. While the above description describescertain examples, and describes the best mode contemplated, no matterhow detailed the above appears in text, the teachings can be practicedin many ways. Details of the system may vary considerably in itsimplementation details, while still being encompassed by the subjectmatter disclosed herein. As noted above, particular terminology usedwhen describing certain features or aspects of the disclosure should notbe taken to imply that the terminology is being redefined herein to berestricted to any specific characteristics, features, or aspects of thedisclosure with which that terminology is associated. In general, theterms used in the following claims should not be construed to limit thedisclosure to the specific implementations disclosed in thespecification, unless the above Detailed Description section explicitlydefines such terms. Accordingly, the actual scope of the disclosureencompasses not only the disclosed implementations, but also allequivalent ways of practicing or implementing the disclosure under theclaims.

While certain aspects of the disclosure are presented below in certainclaim forms, the inventors contemplate the various aspects of thedisclosure in any number of claim forms. Any claims intended to betreated under 35 U.S.C. § 112(f) will begin with the words “means for”.Accordingly, the applicant reserves the right to add additional claimsafter filing the application to pursue such additional claim forms forother aspects of the disclosure.

The terms used in this specification generally have their ordinarymeanings in the art, within the context of the disclosure, and in thespecific context where each term is used. Certain terms that are used todescribe the disclosure are discussed above, or elsewhere in thespecification, to provide additional guidance to the practitionerregarding the description of the disclosure. For convenience, certainterms may be highlighted, for example using capitalization, italics,and/or quotation marks. The use of highlighting has no influence on thescope and meaning of a term; the scope and meaning of a term is thesame, in the same context, whether or not it is highlighted. It will beappreciated that same element can be described in more than one way.

Consequently, alternative language and synonyms may be used for any oneor more of the terms discussed herein, nor is any special significanceto be placed upon whether or not a term is elaborated or discussedherein. Synonyms for certain terms are provided. A recital of one ormore synonyms does not exclude the use of other synonyms. The use ofexamples anywhere in this specification including examples of any termsdiscussed herein is illustrative only, and is not intended to furtherlimit the scope and meaning of the disclosure or of any exemplifiedterm. Likewise, the disclosure is not limited to various examples givenin this specification.

Without intent to further limit the scope of the disclosure, examples ofinstruments, apparatus, methods and their related results according tothe examples of the present disclosure are given below. Note that titlesor subtitles may be used in the examples for convenience of a reader,which in no way should limit the scope of the disclosure. Unlessotherwise defined, all technical and scientific terms used herein havethe same meaning as commonly understood by one of ordinary skill in theart to which this disclosure pertains. In the case of conflict, thepresent document, including definitions will control.

Some portions of this description describe examples in terms ofalgorithms and symbolic representations of operations on information.These algorithmic descriptions and representations are commonly used bythose skilled in the data processing arts to convey the substance oftheir work effectively to others skilled in the art. These operations,while described functionally, computationally, or logically, areunderstood to be implemented by computer programs or equivalentelectrical circuits, microcode, or the like. Furthermore, it has alsoproven convenient at times, to refer to these arrangements of operationsas modules, without loss of generality. The described operations andtheir associated modules may be embodied in software, firmware,hardware, or any combinations thereof.

Any of the steps, operations, or processes described herein may beperformed or implemented with one or more hardware or software modules,alone or in combination with other devices. In some examples, a softwaremodule is implemented with a computer program object comprising acomputer-readable medium containing computer program code, which can beexecuted by a computer processor for performing any or all of the steps,operations, or processes described.

Examples may also relate to an apparatus for performing the operationsherein. This apparatus may be specially constructed for the requiredpurposes, and/or it may comprise a general-purpose computing deviceselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in a non-transitory,tangible computer readable storage medium, or any type of media suitablefor storing electronic instructions, which may be coupled to a computersystem bus. Furthermore, any computing systems referred to in thespecification may include a single processor or may be architecturesemploying multiple processor designs for increased computing capability.

Examples may also relate to an object that is produced by a computingprocess described herein. Such an object may comprise informationresulting from a computing process, where the information is stored on anon-transitory, tangible computer readable storage medium and mayinclude any implementation of a computer program object or other datacombination described herein.

The language used in the specification has been principally selected forreadability and instructional purposes, and it may not have beenselected to delineate or circumscribe the subject matter. It istherefore intended that the scope of this disclosure be limited not bythis detailed description, but rather by any claims that issue on anapplication based hereon. Accordingly, the disclosure of the examples isintended to be illustrative, but not limiting, of the scope of thesubject matter, which is set forth in the following claims.

Specific details were given in the preceding description to provide athorough understanding of various implementations of systems andcomponents for a contextual connection system. It will be understood byone of ordinary skill in the art, however, that the implementationsdescribed above may be practiced without these specific details. Forexample, circuits, systems, networks, processes, and other componentsmay be shown as components in block diagram form in order not to obscurethe embodiments in unnecessary detail. In other instances, well-knowncircuits, processes, algorithms, structures, and techniques may be shownwithout unnecessary detail in order to avoid obscuring the embodiments.

It is also noted that individual implementations may be described as aprocess which is depicted as a flowchart, a flow diagram, a data flowdiagram, a structure diagram, or a block diagram. Although a flowchartmay describe the operations as a sequential process, many of theoperations can be performed in parallel or concurrently. In addition,the order of the operations may be re-arranged. A process is terminatedwhen its operations are completed, but could have additional steps notincluded in a figure. A process may correspond to a method, a function,a procedure, a subroutine, a subprogram, etc. When a process correspondsto a function, its termination can correspond to a return of thefunction to the calling function or the main function.

Client devices, network devices, and other devices can be computingsystems that include one or more integrated circuits, input devices,output devices, data storage devices, and/or network interfaces, amongother things. The integrated circuits can include, for example, one ormore processors, volatile memory, and/or non-volatile memory, amongother things. The input devices can include, for example, a keyboard, amouse, a key pad, a touch interface, a microphone, a camera, and/orother types of input devices. The output devices can include, forexample, a display screen, a speaker, a haptic feedback system, aprinter, and/or other types of output devices. A data storage device,such as a hard drive or flash memory, can enable the computing device totemporarily or permanently store data. A network interface, such as awireless or wired interface, can enable the computing device tocommunicate with a network. Examples of computing devices includedesktop computers, laptop computers, server computers, hand-heldcomputers, tablets, smart phones, personal digital assistants, digitalhome assistants, as well as machines and apparatuses in which acomputing device has been incorporated.

The term “computer-readable medium” includes, but is not limited to,portable or non-portable storage devices, optical storage devices, andvarious other mediums capable of storing, containing, or carryinginstruction(s) and/or data. A computer-readable medium may include anon-transitory medium in which data can be stored and that does notinclude carrier waves and/or transitory electronic signals propagatingwirelessly or over wired connections. Examples of a non-transitorymedium may include, but are not limited to, a magnetic disk or tape,optical storage media such as compact disk (CD) or digital versatiledisk (DVD), flash memory, memory or memory devices. A computer-readablemedium may have stored thereon code and/or machine-executableinstructions that may represent a procedure, a function, a subprogram, aprogram, a routine, a subroutine, a module, a software package, a class,or any combination of instructions, data structures, or programstatements. A code segment may be coupled to another code segment or ahardware circuit by passing and/or receiving information, data,arguments, parameters, or memory contents. Information, arguments,parameters, data, etc. may be passed, forwarded, or transmitted via anysuitable means including memory sharing, message passing, token passing,network transmission, or the like.

The various examples discussed above may further be implemented byhardware, software, firmware, middleware, microcode, hardwaredescription languages, or any combination thereof. When implemented insoftware, firmware, middleware or microcode, the program code or codesegments to perform the necessary tasks (e.g., a computer-programproduct) may be stored in a computer-readable or machine-readablestorage medium (e.g., a medium for storing program code or codesegments). A processor(s), implemented in an integrated circuit, mayperform the necessary tasks.

Where components are described as being “configured to” perform certainoperations, such configuration can be accomplished, for example, bydesigning electronic circuits or other hardware to perform theoperation, by programming programmable electronic circuits (e.g.,microprocessors, or other suitable electronic circuits) to perform theoperation, or any combination thereof.

The various illustrative logical blocks, modules, circuits, andalgorithm steps described in connection with the implementationsdisclosed herein may be implemented as electronic hardware, computersoftware, firmware, or combinations thereof. To clearly illustrate thisinterchangeability of hardware and software, various illustrativecomponents, blocks, modules, circuits, and steps have been describedabove generally in terms of their functionality. Whether suchfunctionality is implemented as hardware or software depends upon theparticular application and design constraints imposed on the overallsystem. Skilled artisans may implement the described functionality invarying ways for each particular application, but such implementationdecisions should not be interpreted as causing a departure from thescope of the present disclosure.

The techniques described herein may also be implemented in electronichardware, computer software, firmware, or any combination thereof. Suchtechniques may be implemented in any of a variety of devices such asgeneral purposes computers, wireless communication device handsets, orintegrated circuit devices having multiple uses including application inwireless communication device handsets and other devices. Any featuresdescribed as modules or components may be implemented together in anintegrated logic device or separately as discrete but interoperablelogic devices. If implemented in software, the techniques may berealized at least in part by a computer-readable data storage mediumcomprising program code including instructions that, when executed,performs one or more of the methods described above. Thecomputer-readable data storage medium may form part of a computerprogram product, which may include packaging materials. Thecomputer-readable medium may comprise memory or data storage media, suchas random access memory (RAM) such as synchronous dynamic random accessmemory (SDRAM), read-only memory (ROM), non-volatile random accessmemory (NVRAM), electrically erasable programmable read-only memory(EEPROM), FLASH memory, magnetic or optical data storage media, and thelike. The techniques additionally, or alternatively, may be realized atleast in part by a computer-readable communication medium that carriesor communicates program code in the form of instructions or datastructures and that can be accessed, read, and/or executed by acomputer, such as propagated signals or waves.

The program code may be executed by a processor, which may include oneor more processors, such as one or more digital signal processors(DSPs), general purpose microprocessors, an application specificintegrated circuits (ASICs), field programmable logic arrays (FPGAs), orother equivalent integrated or discrete logic circuitry. Such aprocessor may be configured to perform any of the techniques describedin this disclosure. A general purpose processor may be a microprocessor;but in the alternative, the processor may be any conventional processor,controller, microcontroller, or state machine. A processor may also beimplemented as a combination of computing devices, e.g., a combinationof a DSP and a microprocessor, a plurality of microprocessors, one ormore microprocessors in conjunction with a DSP core, or any other suchconfiguration. Accordingly, the term “processor,” as used herein mayrefer to any of the foregoing structure, any combination of theforegoing structure, or any other structure or apparatus suitable forimplementation of the techniques described herein. In addition, in someaspects, the functionality described herein may be provided withindedicated software modules or hardware modules configured forimplementing a suspended database update system.

The foregoing detailed description of the technology has been presentedfor purposes of illustration and description. It is not intended to beexhaustive or to limit the technology to the precise form disclosed.Many modifications and variations are possible in light of the aboveteaching. The described embodiments were chosen in order to best explainthe principles of the technology, its practical application, and toenable others skilled in the art to utilize the technology in variousembodiments and with various modifications as are suited to theparticular use contemplated. It is intended that the scope of thetechnology be defined by the claim.

1. (canceled)
 2. A computer-implemented method, comprising:automatically detecting social media content associated with a receivingentity, wherein the social media content is presented to a sendingentity through a social media platform, and wherein the social mediacontent corresponds to a particular event associated with the receivingentity; providing an option to generate a gift for the receiving entity,wherein the option is generated in accordance with the particular event,and wherein the option is presented through the social media platform;detecting a selection of the option to generate the gift, wherein theselection is provided through the social media platform; generating oneor more product selection options for the gift, wherein the one or moreproduct selection options are generated based on the receiving entityand the particular event; receiving input corresponding to a productselection from the one or more product selection options; generating thegift, wherein the gift is generated in response to the productselection, and wherein the gift is presented to the receiving entitythrough the social media platform; and updating information associatedwith previous gifts sent to the receiving entity, wherein theinformation associated with the previous gifts sent to the receivingentity is updated based on the product selection and the particularevent.
 3. The computer-implemented method of claim 2, wherein the giftfurther includes one or more alternative product selections from aproduct category associated with the product selection.
 4. Thecomputer-implemented method of claim 2, wherein the social media contentis automatically detected as a result of the social media contentincluding a hashtag corresponding to the particular event.
 5. Thecomputer-implemented method of claim 2, wherein the input includes amaximum value allocated for the gift, and wherein the gift is presentedaccording to the maximum value.
 6. The computer-implemented method ofclaim 2, wherein the product selection indicates a product category fromwhich the receiving entity can select a product from the productcategory.
 7. The computer-implemented method of claim 2, whereingenerating the one or more product selection options further includes:identifying a set of gifting preferences corresponding to the receivingentity; and using the set of gifting preferences and the particularevent to generate the one or more product selection options.
 8. Thecomputer-implemented method of claim 2, further comprising: identifyingone or more sponsored gift ideas, wherein the one or more sponsored giftideas are associated with the social media platform; and providing theone or more sponsored gift ideas in conjunction with the one or moreproduct selection options for the gift.
 9. A system, comprising: one ormore processors; and memory storing thereon instructions that, as aresult of being executed by the one or more processors, cause the systemto: automatically detect social media content associated with areceiving entity, wherein the social media content is presented to asending entity through a social media platform, and wherein the socialmedia content corresponds to a particular event associated with thereceiving entity; provide an option to generate a gift for the receivingentity, wherein the option is generated in accordance with theparticular event, and wherein the option is presented through the socialmedia platform; detect a selection of the option to generate the gift,wherein the selection is provided through the social media platform;generate one or more product selection options for the gift, wherein theone or more product selection options are generated based on thereceiving entity and the particular event; receive input correspondingto a product selection from the one or more product selection options;generate the gift, wherein the gift is generated in response to theproduct selection, and wherein the gift is presented to the receivingentity through the social media platform; and update informationassociated with previous gifts sent to the receiving entity, wherein theinformation associated with the previous gifts sent to the receivingentity is updated based on the product selection and the particularevent.
 10. The system of claim 9, wherein the gift further includes oneor more alternative product selections from a product categoryassociated with the product selection.
 11. The system of claim 9,wherein the social media content is automatically detected as a resultof the social media content including a hashtag corresponding to theparticular event.
 12. The system of claim 9, wherein the input includesa maximum value allocated for the gift, and wherein the gift ispresented according to the maximum value.
 13. The system of claim 9,wherein the product selection indicates a product category from whichthe receiving entity can select a product from the product category. 14.The system of claim 9, wherein the instructions that cause the system togenerate the one or more product selection options further cause thesystem to: identify a set of gifting preferences corresponding to thereceiving entity; and use the set of gifting preferences and theparticular event to generate the one or more product selection options.15. The system of claim 9, wherein the instructions further cause thesystem to: identify one or more sponsored gift ideas, wherein the one ormore sponsored gift ideas are associated with the social media platform;and provide the one or more sponsored gift ideas in conjunction with theone or more product selection options for the gift.
 16. Anon-transitory, computer-readable storage medium storing thereonexecutable instructions that, as a result of being executed by one ormore processors of a computer system, cause the computer system to:automatically detect social media content associated with a receivingentity, wherein the social media content is presented to a sendingentity through a social media platform, and wherein the social mediacontent corresponds to a particular event associated with the receivingentity; provide an option to generate a gift for the receiving entity,wherein the option is generated in accordance with the particular event,and wherein the option is presented through the social media platform;detect a selection of the option to generate the gift, wherein theselection is provided through the social media platform; generate one ormore product selection options for the gift, wherein the one or moreproduct selection options are generated based on the receiving entityand the particular event; receive input corresponding to a productselection from the one or more product selection options; generate thegift, wherein the gift is generated in response to the productselection, and wherein the gift is presented to the receiving entitythrough the social media platform; and update information associatedwith previous gifts sent to the receiving entity, wherein theinformation associated with the previous gifts sent to the receivingentity is updated based on the product selection and the particularevent.
 17. The non-transitory, computer-readable storage medium of claim16, wherein the gift further includes one or more alternative productselections from a product category associated with the productselection.
 18. The non-transitory, computer-readable storage medium ofclaim 16, wherein the social media content is automatically detected asa result of the social media content including a hashtag correspondingto the particular event.
 19. The non-transitory, computer-readablestorage medium of claim 16, wherein the input includes a maximum valueallocated for the gift, and wherein the gift is presented according tothe maximum value.
 20. The non-transitory, computer-readable storagemedium of claim 16, wherein the product selection indicates a productcategory from which the receiving entity can select a product from theproduct category.
 21. The non-transitory, computer-readable storagemedium of claim 16, wherein the executable instructions that cause thecomputer system to generate the one or more product selection optionsfurther cause the computer system to: identify a set of giftingpreferences corresponding to the receiving entity; and use the set ofgifting preferences and the particular event to generate the one or moreproduct selection options.
 22. The non-transitory, computer-readablestorage medium of claim 16, wherein the executable instructions furthercause the computer system to: identify one or more sponsored gift ideas,wherein the one or more sponsored gift ideas are associated with thesocial media platform; and provide the one or more sponsored gift ideasin conjunction with the one or more product selection options for thegift.